package com.example.mediaplayer.utils;

import java.io.File;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Random;

import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
import android.util.Log;

import com.example.mediaplayer.R;
import com.example.mediaplayer.base.BaseApp;

/**
 * @author 作者ylh E-mail:504367857@qq.com
 * @version 创建时间：2015-1-18 下午1:31:18 类说明
 */
public class ViewUtil {

	private static final String TAG = "FileScan";

	/**
	 * 调用系统安装了的应用分享
	 * 
	 * @param context
	 * @param title
	 * @param url
	 */
	public static void showShareMore(Activity context, final String title,
			final String content, final String url) {
		Intent intent = new Intent(Intent.ACTION_SEND);
		intent.setType("text/plain");
		intent.putExtra(Intent.EXTRA_SUBJECT, "分享：" + title);
		intent.putExtra(Intent.EXTRA_TEXT, content);
		context.startActivity(Intent.createChooser(intent, "选择分享"));
	}

	/**
	 * 根据String的资源id,获得字符串
	 */
	public static String getString(int resId) {
		return BaseApp.AppContext.getString(resId);
	}

	/**
	 * 本地存储 根据key获取value
	 * 
	 * @param key
	 * @return
	 */
	public static String getShardPStringByKey(String key) {
		SharedPreferences sharedPreferences = BaseApp.AppContext
				.getSharedPreferences(getString(R.string.app_name),
						Context.MODE_PRIVATE);
		String cString = sharedPreferences.getString(key, "");

		return cString;
	}

	/**
	 * 保存key 和 value
	 * 
	 * @param key
	 * @param content
	 */
	public static void setShardPString(String key, String content) {
		SharedPreferences sharedPreferences = BaseApp.AppContext
				.getSharedPreferences(getString(R.string.app_name),
						Context.MODE_PRIVATE);
		SharedPreferences.Editor edit = sharedPreferences.edit();
		edit.putString(key, content);
		edit.commit();
	}

	/**
	 * @param file
	 *            sd卡根目录
	 * @return
	 */
	public static List<HashMap<String, String>> getMusicListOnSys(File file,
			String type) {

		// 从根目录开始扫描
		// Log.i(TAG, file.getPath());
		List<HashMap<String, String>> fileList = new ArrayList<HashMap<String, String>>();
		getFileList(file, fileList, type);
		return fileList;
	}

	/**
	 * @param path
	 * @param fileList
	 *            注意的是并不是所有的文件夹都可以进行读取的，权限问题
	 */
	private static void getFileList(File path,
			List<HashMap<String, String>> fileList, String type) {
		// 如果是文件夹的话
		if (path.isDirectory()) {
			// 返回文件夹中有的数据
			File[] files = path.listFiles();
			// 先判断下有没有权限，如果没有权限的话，就不执行了
			if (null == files)
				return;

			for (int i = 0; i < files.length; i++) {
				getFileList(files[i], fileList, type);
			}
		}
		// 如果是文件的话直接加入
		else {
			Log.i(TAG, path.getAbsolutePath());

			// 进行文件的处理
			String filePath = path.getAbsolutePath();

			// 类型
			String fileType = filePath.substring(filePath.lastIndexOf(".") + 1);

			if (type.equals(fileType)) {
				HashMap<String, String> map = new HashMap<String, String>();
				// 文件名
				String fileName = filePath
						.substring(filePath.lastIndexOf("/") + 1);
				// 添加
				map.put("fileName", fileName);
				map.put("filePath", filePath);
				fileList.add(map);
			}
		}
	}

	/**
	 * 获取SdCard(路径)
	 */
	public static File getExternalStoragePath() {

		// 获取SdCard状态

		String state = android.os.Environment.getExternalStorageState();

		// 判断SdCard是否存在并且是可用的

		if (android.os.Environment.MEDIA_MOUNTED.equals(state)) {

			if (android.os.Environment.getExternalStorageDirectory().canWrite()) {

				// return
				// android.os.Environment.getExternalStorageDirectory().getPath();
				return android.os.Environment.getExternalStorageDirectory();

			}

		}

		return null;

	}

    public static int getRandam(int min,int max){
        Random random = new Random();

        int s = random.nextInt(max)%(max-min+1) + min;
        return s;
    }
}
